import { constantRoutes, asyncRoutes } from '@/router'
console.log(asyncRoutes)
const state = {
  // 是完整的用户路由映射表，但是初始值只能是静态路由
  routes: constantRoutes // ===> 左侧菜单！！！
}

const mutations = {
  // 修改 routes 信息
  setRoutes(state, newRoutes) {
    // newRoutes 就是筛选出来的该用户的动态路由
    // 下面这么写不对 不是语法不对 是业务不对
    // state.routes = [...state.routes, ...newRoutes]
    // 应该是每次更新 都应该在静态路由的基础上进行追加
    state.routes = [...constantRoutes, ...newRoutes]
  }
}

const actions = {
  // 筛选权限路由
  filterRoutes(context, menus) {
    const routes = []
    menus.forEach(key => {
      // 得到一个数组 有可能 有元素 也有可能是空数组
      routes.push(...asyncRoutes.filter(item => item.name === key))
    })
    context.commit('setRoutes', routes) // 将动态路由提交给mutations
    return routes //   是给路由addRoutes用的
  }

}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

